package com.lagou.java.dao;//package com.lagou.java.dao;

import com.lagou.java.pojo.Resume;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

/**
 * 一个符合SpringJpa要求的dao层接口是需要继承JpaRepository和JpaSpecificationExecutor
 * JpaRepository<要操作的实体类, 主键类型>
 * JpaSpecificationExecutor<要操作的实体类>
 */
public interface ResumeDao extends JpaRepository<Resume, Long>, JpaSpecificationExecutor<Resume> {

    @Query("from Resume where id = ?1 and name = ?2")
    List<Resume> findByJpql(Long id, String name);

    /**
     * 使用原生sql语句查询, 需要将nativeQuery属性设置为true, 默认为false
     * @param name
     * @param address
     * @return
     */
    @Query(value = "select * from tb_resume where name like ?1 and address like ?2", nativeQuery = true)
    List<Resume> findBySql(String name, String address);

    /**
     * 方法命名规则查询
     * 按照naem模糊查询(like)
     *      方法名以findBy开头
     *          -属性名首字母必须大写
     *              -查询方式(模糊查询, 等价查询), 如果不写查询方式, 默认使用等于查询
     */
    List<Resume> findByNameLikeAndAddress(String name, String address);




}
